import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

class Diapo extends JPanel implements ActionListener {

	private static final long serialVersionUID = 1L;
//	private Timer timer;
//	private int pas = 10;
//	private int x;
	private int largeurImage;
//	private static ArrayList<String> list = new ArrayList<String>();
	private Image image = null;
	private File file = null;

	Diapo(String filename) {
		setPreferredSize(new Dimension(400, 400));
		this.file = new File(filename);
		// setBackground(Color.YELLOW);
//		timer = new Timer(100, this);
//		timer.start();

	}

	void construireImage() {
		try {
			image = javax.imageio.ImageIO.read(file);
			int largeurMonde = image.getWidth(this);
			int hauteurMonde = image.getHeight(this);
			// Font fonte = new Font("TimesRoman",Font.PLAIN, 25);
			// FontMetrics mesure = getFontMetrics(fonte);
			// int hauteurChaine = mesure.getHeight();
			// int largeurChaine = mesure.stringWidth(chaine);

			largeurImage = largeurMonde + 10;
			int hauteurImage = hauteurMonde + 10;
			// int yChaine = (hauteurImage + mesure.getAscent())/2;

			image = createImage(largeurImage, hauteurImage);

			Graphics g = image.getGraphics();
			g.setColor(Color.YELLOW);
			g.fillRect(0, 0, largeurImage, hauteurImage);
			g.drawImage(image, 0, (hauteurImage - hauteurMonde) / 2, this);
			// g.setFont(fonte);
			g.setColor(Color.RED);
			// g.drawString(chaine, largeurMonde + 10, this);
			g.dispose();
			javax.imageio.ImageIO.write((java.awt.image.BufferedImage) image,
					"jpeg", new java.io.File("defile.jpg"));
		} catch (IOException exc) {
			exc.printStackTrace();
		}
	}

	public void actionPerformed(ActionEvent e) {
//		x = x - pas;
//
//		// si l'image est sortie sur la droite, on la fait repartir de la gauche
//		if (x < -largeurImage)
//			x = getWidth();
		repaint();
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		construireImage();
		// g.drawImage(image, x, 40, this);
	}
}
